package com.whfc.ms.api.mach.service;

import com.whfc.mach.dto.AppMachOilLogDTO;
import com.whfc.mach.dto.AppMachOilSheetDTO;
import com.whfc.mach.entity.AppDeviceObdLog;
import com.whfc.mach.entity.AppMachDataLog;

import java.util.Date;
import java.util.List;

/**
 * @author sun_guodong
 * @description 设备模块内部接口
 * @date 2020-12-16
 */
public interface MsMachInnerService {
    /**
     * 计算单台设备的每日数据
     *
     * @param machId
     * @param date
     */
    void statMachDayData(Integer machId, Date date);

    /**
     * 批量计算设备的每日数据
     *
     * @param date
     */
    void statMachDayData(Date date);

    /**
     * 批量计算Obd设备的每日数据
     *
     * @param date
     */
    void statObdMachDayData(Date date);

    /**
     * 编造试点项目的设备运行数据
     *
     * @param machId
     * @param deviceId
     * @param date
     * @param effic
     */
    void buildMachData(Integer machId, Integer deviceId, Date date, Double effic);

    /**
     * 转移设备数据
     *
     * @param srcMachId
     * @param desMachId
     * @param srcDate
     * @param desDate
     * @param lngDiff
     * @param latDiff
     */
    void transferData(Integer srcMachId, Integer desMachId, Date srcDate, Date desDate, Double lngDiff, Double latDiff);

    /**
     * 内部接口统计设备每月数据
     *
     * @param date
     */
    void statMachMonthData(Date date);


    /**
     * 刷新设备polygonWKT内部接口
     *
     * @param deptId
     */
    void refreshPolygonWKT(Integer deptId);

    /**
     * 修正设备硬件数据
     *
     * @param param
     */
    void amendMachDeviceData(List<AppMachDataLog> param);

    /**
     * 修正OBD设备硬件数据
     *
     * @param param
     */
    void amendObdDeviceData(AppDeviceObdLog param);

    /**
     * 查询油箱标定数据
     *
     * @param deviceId
     * @param startTime
     * @param endTime
     * @return
     */
    List<AppMachOilLogDTO> getMachOilLog(Integer deviceId, Date startTime, Date endTime);

    /**
     * 保存油箱标定结果
     *
     * @param machId
     * @param oilSheetDTOList
     */
    void saveMachOilSheet(Integer machId, List<AppMachOilSheetDTO> oilSheetDTOList);

    /**
     * 获取油箱标定结果
     *
     * @param machId
     * @return
     */
    List<AppMachOilSheetDTO> getMachOilSheet(Integer machId);
}
